@echo off
echo 开始构建匿名投票系统镜像和容器...

:: 设置错误处理
setlocal enabledelayedexpansion

:: 1. 构建临时镜像
echo 步骤1: 构建临时镜像 anonymous-temp
docker build -t anonymous-temp .

:: 检查构建是否成功
if %ERRORLEVEL% neq 0 (
    echo 错误: 临时镜像构建失败，请检查Dockerfile和构建环境。
    exit /b 1
)

echo 临时镜像构建成功！

:: 2. 停止并删除之前的容器（如果存在）
echo 步骤2: 停止并删除之前的容器（如果存在）
docker stop anonymous-voting 2>nul
docker rm anonymous-voting 2>nul

:: 3. 删除之前的镜像（如果存在）
echo 步骤3: 删除之前的镜像（如果存在）
docker rmi liured88/anonymous-voting 2>nul

:: 4. 将临时镜像重命名为目标镜像
echo 步骤4: 将临时镜像重命名为 liured88/anonymous-voting
docker tag anonymous-temp liured88/anonymous-voting

if %ERRORLEVEL% neq 0 (
    echo 错误: 镜像重命名失败。
    exit /b 1
)

:: 删除临时镜像
docker rmi anonymous-temp

:: 5. 运行新容器
echo 步骤5: 运行新容器
docker run -d --name anonymous-voting -p 7581:3000 ^
-v /d/docker/anonymous-voting:/app/data ^
-v /d/docker/anonymous-voting/public:/app/public ^
-v /d/docker/anonymous-voting/data/votedb.db:/app/votedb.db ^
-v /d/docker/anonymous-voting/etc/ssl:/etc/ssl:ro ^
-e NGROK_AUTHTOKEN=2x5K0NNr4yzw27olFCL5uKW9j2d_77EZtCBpv86pWt9PNhiu5 ^
-e EXT_PUBLIC_BASE_URL=http://localhost:7581 ^
-e HOST=0.0.0.0 ^
-e NGROK_REGION=ap ^
-e NGROK_HOST_HEADER=rewrite ^
-e NGROK_BIND_TLS=true ^
liured88/anonymous-voting

if %ERRORLEVEL% neq 0 (
    echo 错误: 容器启动失败，请检查参数和环境配置。
    exit /b 1
)

echo 成功！匿名投票系统容器已启动。
echo 可以通过 http://localhost:7581 访问系统。
echo 查看容器日志: docker logs anonymous-voting

:: 等待用户按任意键继续
pause